package com.kangfuqiang.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {
	/**
	 * 把 当前日期 转换成 String;
	 * @return 日期字符串：格式如"2001-07-04  12:08:56 "
	 */
	public static String formatDate() {
		return formatDate(new Date());
	}
	
	/**
	 * 把 毫秒数 转换成 String
	 * @param time the milliseconds since January 1, 1970, 00:00:00 GMT
	 * @return 日期字符串：格式如："2001-07-04  12:08:56 "
	 */
	public static String formatDate(long time) {
		return formatDate("yyyy-MM-dd HH:mm:ss",new Date(time));
	}
	
	/**
	 * 把 Date 转换成String;
	 * @return  日期字符串：格式 如"2001-07-04  12:08:56 ";
	 */
	public static String formatDate(Date date) {
		return formatDate("yyyy-MM-dd HH:mm:ss",date);
	}
	
	/**
	 * 把 Date 转换成String;
	 * @param fmt 日期格式
	 * @param date
	 * @return
	 */
	public static String formatDate(String fmt, Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		return sdf.format(date);
	}
	
	
	/**
	 * 把 String 转换成 Date
	 * @param dateStr 格式:yyyy-MM-dd HH:mm:ss
	 * @return Date
	 */
	public static Date parseDate(String dateStr){
		return parseDate("yyyy-MM-dd HH:mm:ss",dateStr);
	}
	
	/**
	 * 按fmt格式，将 String 转换成 Date 对象
	 * @param fmt 自定义日期字符串格式
	 * @param dateStr 日期的字符串表示
	 * @return Date
	 */
	public static Date parseDate(String fmt, String dateStr){
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		try {
			return sdf.parse(dateStr);
		}catch(ParseException e) {
			e.printStackTrace();
			return null;
		}
	}
	
	
	public static void main(String[] args) {
		System.out.println( parseDate("yyyy-MM-dd HH:mm:ss","2011-10-21 20:10:20")  );
		System.out.println( parseDate("yyyy-MM-dd HH:mm:ss","2011-10-21 00:00:00")  );
	}

}
